/***************************************************************************
 创建者：          hualei
 开始时间：      2018.09.10
 copyright:(C)    深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   MODBUS_START 总线指令属性编辑视窗
 *
 ***************************************************************************/
#ifndef MODBUSSTARTINSTRUCTIONVIEW_H
#define MODBUSSTARTINSTRUCTIONVIEW_H

#include <QWidget>
#include "modbusstartinstructionview_global.h"
#include <QTranslator>
#include "instructionEnum.h"

class ProgramView;

namespace Ui {
class ModbusStartInstructionView;
}

///**
// * @brief The E_MODBUS_SPEC_TYPE enum   modbus总线规范类型
// */
//enum E_MODBUS_SPEC_TYPE
//{
//    E_MODBUS_SPEC_TYPE_RS485_MASTER,        //Modbus-RS485-主设备类型
//    E_MODBUS_SPEC_TYPE_RS485_SLAVE,         //Modbus-RS485-从设备类型
//    E_MODBUS_SPEC_TYPE_INTERNET_MASTER,     //Modbus-TCP-主设备类型
//    E_MODBUS_SPEC_TYPE_INTERNET_SLAVE,      //Modbus-TCP-从设备类型
//    E_MODBUS_SPEC_TYPE_ERROR                // 错误
//};

/**
 * @brief The ModbusStartInstructionView class  MODBUS_START 总线指令属性编辑视窗
 */
class MODBUSSTARTINSTRUCTIONVIEWSHARE_EXPORT ModbusStartInstructionView : public QWidget
{
    Q_OBJECT

public:
    /**
      * @brief ModbusStartInstructionView   构造函数
      * @param parent                       父类
      */
     ModbusStartInstructionView(int styleId,QWidget *parent = 0);

     /**
      * @brief getInput   获取界面输入内容
      */
     void getInput();

     /**
      * @brief updateView   更新数据到界面
      */
     void updateView();

     /**
      * @brief changeLanguage  更改语言
      * @param language
      */
     void changeLanguage(int language);

     void initialDisplayStyle(int styleId);

private slots:

     /**
     * @brief on_clearNote_Btn_clicked      清除注释槽函数
     */
    void on_clearNote_Btn_clicked();

    /**
     * @brief on_forward_Btn_clicked        返回上一页槽函数
     */
    void on_forward_Btn_clicked();

    /**
     * @brief on_save_Btn_clicked           指令属性保存槽函数
     */
    void on_save_Btn_clicked();

signals:
    /**
     * @brief finishEidtInstruction         指令属性编辑完成
     */
    void finishEidtInstruction();

    /**
     * @brief saveInstruction               保存编辑指令
     * @param instruction                   指令
     */
    void saveInstruction(QString instruction);

    /**
     * @brief cleanNote                     清除注释
     */
    void cleanNote();

private:

    QTranslator translator;

public:
    /**
     * @brief programViw            父窗口
     */
    ProgramView *programView;

    /**
     * @brief instruction           当前指令
     */
    QString instruction;

    /**
     * @brief modbusID              总线ID
     */
    int modbusID;

    /**
     * @brief modbusSpecType    　　总线类型
     */
    E_MODBUS_SPEC_TYPE modbusSpecType;

    /**
     * @brief JMP_LB_Velue          跳转标签
     */
    int JMP_LB_Velue;

    /**
     * @brief noteStr               注释
     */
    QString noteStr;

private:
    Ui::ModbusStartInstructionView *ui;
};

#endif // MODBUSSTARTINSTRUCTIONVIEW_H
